import axios from 'axios'
import { ElMessage } from 'element-plus'
//获取用户仓库
import useUserStore from '@/stores/modules/user.ts'
//创建axios实例
const request = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API,
  timeout: 10000,
})
const request2 = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API2, // 第二个接口地址
  timeout: 10000,
})
//请求拦截器
const setupRequestInterceptors = (instance: any) => {
  instance.interceptors.request.use((config: any) => {
    const userStore = useUserStore()
    if (userStore.token) {
      config.headers.token = userStore.token
    }
    return config
  })
}
//响应拦截器
const setupResponseInterceptors = (instance: any) => {
  instance.interceptors.response.use(
    (response: any) => {
      return response.data
    },
    (error: any) => {
      // 处理网络错误
      let msg = ''
      const status = error.response?.status
      switch (status) {
        case 401:
          msg = 'token过期'
          break
        case 403:
          msg = '无权访问'
          break
        case 404:
          msg = '请求地址错误'
          break
        case 500:
          msg = '服务器出现问题'
          break
        default:
          msg = '无网络'
      }
      ElMessage({
        type: 'error',
        message: msg,
      })
      return Promise.reject(error)
    },
  )
}
// 为两个实例设置拦截器
setupRequestInterceptors(request)
setupResponseInterceptors(request)

setupRequestInterceptors(request2)
setupResponseInterceptors(request2)
export { request, request2 }
